package com.shjl.kechuang.utils.excel;

import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.fastjson.JSON;
import com.shjl.kechuang.domain.dto.KySpecSmeDTO;
import com.shjl.kechuang.domain.pojo.KySpecSme;
import com.shjl.kechuang.mapper.KySpecSmeMapper;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Date;

/**
 * @title: SpecSmeExcelUtil
 * @author: wywang
 * @date: 2025/04/03
 * @description: 专精特新中小企业Excel读取工具
 **/
@Slf4j
@SpringBootTest
public class SpecSmeExcelUtils {

    String PATH = "C:\\Users\\86152\\OneDrive\\桌面\\科创信贷数据收集\\科技研发\\专精特新中小企业名单\\广东\\";

    @Autowired
    private KySpecSmeMapper kySpecSmeMapper ;

    @Test
    public void excelRead() {

        String fileName = PATH + "通过复核的2021年专精特新中小企业公示名单.xls";

        // 这里默认每次会读取100条数据 然后返回过来 直接调用使用数据就行
        // 具体需要返回多少行可以在`PageReadListener`的构造函数设置
        EasyExcel.read(fileName, KySpecSmeDTO.class, new PageReadListener<KySpecSmeDTO>(dataList -> {
            for (KySpecSmeDTO kySpecSmeDTO : dataList) {

                if (BeanUtil.isNotEmpty(kySpecSmeDTO)) {
                    KySpecSme kySpecSme = BeanUtil.copyProperties(kySpecSmeDTO, KySpecSme.class);
                    kySpecSme.setId(null);
                    kySpecSme.setPubYear(2024);
                    kySpecSme.setProvince("广东");
                    kySpecSme.setDr(0);
                    kySpecSme.setUpdateTime(new Date());
                    kySpecSme.setType("复核");  // 复核/新入选

                    kySpecSmeMapper.insert(kySpecSme);
                }

            }
        })).sheet().doRead();
        log.info("{}", JSON.toJSONString(fileName));

    }

}
